<?php 
	/**
 * 
 * Devuelve True si necesita hacer FIX del tamaño de una columna
 * @param Variable con el Texto
 * @param Posicion izquierda o derecha de la ficha
 */
function checkLongitud($variable,$posicion)
{
	$longitud = strlen($variable);
	
	if ($posicion=='s1' && $longitud>=5)
		return true;
		
	if ($posicion=='s2' && $longitud>=32)
		return true;
	
	if ($posicion=='s3' && $longitud>=42)
		return true;
		
	if ($posicion=='s4' && $longitud>=37)
		return true;
	
	if ($posicion=='s5' && $longitud>=38)
		return true;
		
	return false;
}	

	Yii::import('application.vendors.*');
	require_once('FPDF/fpdf.php');
	require_once('FPDI/fpdi.php');
	require_once('QR/qrcode.class.php');
		
	$pdf = new FPDI();
	
	set_time_limit(1000); 
	ini_set("memory_limit","10000M");
	
	/**configuracion*/
	
	//$fuente = 'fuente.TTF';	
	$posicionImagenes= array('x1'=>4.5,'y1'=>56,
							'x2'=>104.5,'y2'=>56,
							'x3'=>4.5,'y3'=>198.5,//207
							'x4'=>104.5,'y4'=>198.5,
						);
						
	$incrementos= array('x1'=>2,'y1'=>10,
						'x2'=>2,'y2'=>10,
						'x3'=>2,'y3'=>10,
						'x4'=>2,'y4'=>10,
						);
	
	$posicionImagenesBack= array('x1'=>109,'y1'=>153,
							'x2'=>5,'y2'=>153,
							'x3'=>109,'y3'=>295,
							'x4'=>5,'y4'=>295,
						);
						
	$incrementosBack= array('x1'=>2,'y1'=>8,
						'x2'=>2,'y2'=>8,
						'x3'=>2,'y3'=>8,
						'x4'=>2,'y4'=>8,
						);
						
	$colores = array('blanco'=>'255,255,255',
					'negro'=>'0,0,0',
					'gris'=>'109,104,104',
					'grisOscuro'=>'58,58,60',
					);
	
	$size = array('s1'=>'32','s1a'=>'24','s2'=>'15','s3'=>'13','s4'=>'20','s5'=>'38','s6'=>'38');
	$fuente = array('s1'=>"Arial,B,24",'s2'=>'14','s3'=>'11','s4'=>'28','s5'=>'28','s6'=>'28');
						
	$contadorNuevaPagina=5;//Al registrar 3 agrega una pagina y establece 0 a la variable
	$rutaFondoFront=Yii::getPathOfAlias("webroot").'/pdf/HojaA4.png';//url de la imagen de fondo del frente
	$rutaFondoBack=Yii::getPathOfAlias("webroot").'/pdf/HojaA4Back.png';//url de la imagen de fondo del back
	
	$contadorFrontBack=1; //1frente : 2espalda
	
	$arrayDatosBack = new ArrayObject();
	$arrayColores = array();
	$arrayColoresFuente = array();
	
	$contadorTotal=0;
	
	/**datos**/
	foreach ($rows as $row)
	{				
		$contadorTotal++;
		
		$arrayEscenarios= array();
		$banderaInfinito=0;
		if($contadorNuevaPagina==5)
		{
			//agrega una pagina nueva
			$pdf->AddPage('P','A4');
			$pdf->SetAutoPageBreak('off',1);
			//define que fondo pone, front o back
			//if($contadorFrontBack==1)
			//{
				$pdf->Image($rutaFondoFront,-4.7,-6,220,313,'PNG');
			//	$contadorFrontBack++;								
			//}			
			
				
				
			$contadorNuevaPagina=1;
			
			$posicionImagenes= array('x1'=>4.5,'y1'=>56,
							'x2'=>104.5,'y2'=>56,
							'x3'=>4.5,'y3'=>198.5,
							'x4'=>104.5,'y4'=>198.5,
						);
						
			$incrementos= array('x1'=>2,'y1'=>10,
						'x2'=>2,'y2'=>10,
						'x3'=>2,'y3'=>10,
						'x4'=>2,'y4'=>10,
						);
		}
		
		$arrayDatosBack->append($row);
		
		$rutaImagen=Yii::getPathOfAlias("webroot").'/'.$row["inscripcion_nominal_foto"];
		
		//habilitarlo en localhost
		$pdf->Image($rutaImagen,$posicionImagenes['x'.$contadorNuevaPagina]+4,$posicionImagenes['y'.$contadorNuevaPagina]-22,29,33,'JPG');
	
		 
		 //habilitarlo solo en bluehost
		/*
		switch (exif_imagetype($rutaImagen)) {
			case IMAGETYPE_JPEG:				
					$pdf->Image($rutaImagen,$posicionImagenes['x'.$contadorNuevaPagina]+4,$posicionImagenes['y'.$contadorNuevaPagina]-22,29,33,'JPG');
	
			break;
			
			case IMAGETYPE_JPEG2000:
					$pdf->Image($rutaImagen,$posicionImagenes['x'.$contadorNuevaPagina]+4,$posicionImagenes['y'.$contadorNuevaPagina]-22,29,33,'JPG');
	
			break;
			
			case IMAGETYPE_PNG:
					$pdf->Image($rutaImagen,$posicionImagenes['x'.$contadorNuevaPagina]+4,$posicionImagenes['y'.$contadorNuevaPagina]-22,29,33,'PNG');
			break;
					
		}
	*/
		
		$pdf->SetFont('Arial','B');	
		$pdf->SetFontSize($size['s1a']);		
		$pdf->SetTextColor($colores['blanco']);
		$pdf->SetXY($posicionImagenes['x'.$contadorNuevaPagina]+84, $posicionImagenes['y'.$contadorNuevaPagina]+3);
			

		$oTransporte = CategoriaTransporte::model()->findAll('categoria_id=:categoria_id',array(':categoria_id'=>$row['categoria_id']));
		if(isset($oTransporte))
		{
			foreach ($oTransporte as $transporte)
			{
				$objTransporte = Transporte::model()->findByPk($transporte->transporte_id);
				$pdf->Cell(10,10,utf8_decode($objTransporte->transporte_descripcion));
			}
		}
		
		$pdf->SetFont('Arial','B');	
		$pdf->SetFontSize($size['s1']);		
		$pdf->SetTextColor($colores['blanco']);
		$pdf->SetXY($posicionImagenes['x'.$contadorNuevaPagina]+34, $posicionImagenes['y'.$contadorNuevaPagina]+4);
		
		if(checkLongitud($row['categoria_descripcion'],'s1'))
			$pdf->CellFit(30,10,utf8_decode($row['categoria_descripcion']),0,0,'L',false,'',true);
		else		
			$pdf->Cell(10,10,utf8_decode($row['categoria_descripcion']));
		
	
		$pdf->SetFont('Arial','');	
		$pdf->SetFontSize($size['s2']);		
		$pdf->SetTextColor($colores['negro']);		
		$pdf->SetXY($posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina], $posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+3);
		if(checkLongitud($row['persona_nombre_credencial'],'s2'))
			$pdf->CellFit(70,10,utf8_decode($row['persona_nombre_credencial']),0,0,'L',false,'',true);
		else		
		$pdf->Cell(10,10,utf8_decode($row['persona_nombre_credencial']));	
		
		$pdf->SetFont('Times','B');	
		$pdf->SetFontSize($size['s3']);		
		$pdf->SetTextColor($colores['gris']);
		$pdf->SetXY($posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina], $posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+9);
		if(checkLongitud($row['categoria_aplica'],'s3'))
			$pdf->CellFit(60,10,utf8_decode($row['categoria_aplica']),0,0,'L',false,'',true);
		else	
		$pdf->Cell(10,10,utf8_decode($row['categoria_aplica']));

		
		$pdf->SetFont('Arial','B');	
		$pdf->SetFontSize($size['s4']);		
		$pdf->SetTextColor($colores['grisOscuro']);
		$pdf->SetXY($posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina], $posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+17);		
		$pdf->Cell(10,10,utf8_decode(strtoupper($row['pais_iso'])));
		

		/*Obtener Zonas y Colores*/
		$rutaInfinito = Yii::getPathOfAlias("webroot").'/pdf/infinity.png';
		$rutaPem = Yii::getPathOfAlias("webroot").'/pdf/pem.png';
		$rutaMay = Yii::getPathOfAlias("webroot").'/pdf/may.png';
		$rutaPsm = Yii::getPathOfAlias("webroot").'/pdf/psm.png';
		$rutaEas = Yii::getPathOfAlias("webroot").'/pdf/eas.png';
		$rutaMyc = Yii::getPathOfAlias("webroot").'/pdf/myc.png';
		
		$zonasTodas='';
		$zonas='';
		$color='';
		$oZona = CategoriaZona::model()->findAll('categoria_id=:categoria_id',array(':categoria_id'=>$row['categoria_id']));
	
		if(isset($oZona))
		{
			foreach ($oZona as $zona)
			{
				$objZona = Zona::model()->findByPk($zona->zona_id);
				switch (strtoupper($objZona->zona_descripcion)) {
					case 'AZUL':
						$color=Yii::getPathOfAlias("webroot").'/pdf/rectanguloPieAzul.jpg';
						$pdf->SetTextColor($colores['blanco']);
						array_push($arrayColores, $color);
						array_push($arrayColoresFuente, 'blanco');
						$pdf->Image($color,$posicionImagenes['x'.$contadorNuevaPagina]-1,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+63,99,18,'JPG');
					break;
					
					case 'ROJO':
						$color=Yii::getPathOfAlias("webroot").'/pdf/rectanguloPieRojo.jpg';
						$pdf->SetTextColor($colores['blanco']);
						array_push($arrayColores, $color);
						array_push($arrayColoresFuente, 'blanco');
						$pdf->Image($color,$posicionImagenes['x'.$contadorNuevaPagina]-1,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+63,99,18,'JPG');
					break;
					
					case 'BLANCO':
						$color=Yii::getPathOfAlias("webroot").'/pdf/rectanguloPieBlanco.jpg';
						$pdf->SetTextColor($colores['negro']);
						array_push($arrayColores, $color);
						array_push($arrayColoresFuente, 'negro');
						$pdf->Image($color,$posicionImagenes['x'.$contadorNuevaPagina]-1,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+63,99,18,'JPG');						
					break;
					
					case 'INFINITO':
					
						$pdf->Image($rutaInfinito,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina],$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+40,10,7,'PNG');
						$banderaInfinito=1;		
					break;
					
					case 'PEM':
						array_push($arrayEscenarios, 'PEM');
					break;
					
					case 'MAY':
						array_push($arrayEscenarios, 'MAY');
					break;
					
					case 'PSM':
						array_push($arrayEscenarios, 'PSM');
					break;
					
					case 'EAS':
						array_push($arrayEscenarios, 'EAS');
					break;
					
					case 'MYC':
						array_push($arrayEscenarios, 'MYC');
					break;
					
					default:
						$zonas .= $objZona->zona_descripcion.' ';	
					break;
				}
				
				$zonasTodas .= $objZona->zona_descripcion.' ';
										
			}
		}
		
							
										
			
		/****  ZONA DE ESCENARIOS ***/
		//Si es infinito no pone los escenarios
		
		if ($banderaInfinito==0)
		{
			switch ($row['deporte_actividad_observacion']) {
				case 'BH':	
					$pdf->Image($rutaEas,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+54,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');													
				break;
				
				case 'BR':	
					$pdf->Image($rutaEas,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+54,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');							
				break;
				
				case 'BS':	
					$pdf->Image($rutaEas,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+54,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');							
				break;
				
				case 'BV':	
					$pdf->Image($rutaEas,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+54,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');							
				break;
				
				case 'MS':	
					$pdf->Image($rutaMyc,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+72,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');							
				break;
				
				case 'SA':	
					$pdf->Image($rutaMyc,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+72,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');							
				break;
				
				case 'SF':		
					$pdf->Image($rutaPsm,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+36,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');						
				break;
				
				case 'TR':	
					$pdf->Image($rutaPem,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina],$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');							
				break;
				
				case 'WS':		
					$pdf->Image($rutaMay,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+18,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');						
				break;
				
				default:
					/*if(!empty($arrayEscenarios))
					{
						for($i =0;$i<=count($arrayEscenarios);$i++)
						{
							switch ($arrayEscenarios[$i]) {
								case 'PEM':	
									$pdf->Image($rutaPem,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina],$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');																						
								break;
								
								case 'MAY':	
									$pdf->Image($rutaMay,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+18,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');							
								break;
								
								case 'PSM':	
									$pdf->Image($rutaPsm,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+36,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');							
								break;
								
								case 'EAS':	
									$pdf->Image($rutaEas,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+54,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');							
								break;
								
								case 'MYC':	
									$pdf->Image($rutaMyc,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+72,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');							
								break;
		
							}
						}
					}*/
				break;
			}
			
			
		}
		else
		{
			$pdf->Image($rutaPem,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina],$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');							
			$pdf->Image($rutaMay,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+18,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');
			$pdf->Image($rutaPsm,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+36,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');						
			$pdf->Image($rutaEas,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+54,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');
			$pdf->Image($rutaMyc,$posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+72,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+54,14,7,'PNG');										
		}
	
		/***  FIN ZONA ESCENARIOS ***/
		
		$mensajeQR =('http://www.manta2011.org/acreditaciones/index.php/panel/trust?inid='.$row['inscripcion_nominal_id']);
		$mensajeStrQr='INID:'.$row['inscripcion_nominal_id'].'- Acreditado(a):'.$row['persona_nombres_apellidos'].'- Ident:'.$row['persona_numero_identificacion'].'- País:'.strtoupper($row['pais_iso']).'- Función:'.$row['categoria_aplica'].'- Accesos:'.$zonasTodas;
		
		$mensajeQR =($mensajeStrQr);
		
		$qr = new QRcode($mensajeQR, 'Q'); // error level: L, M, Q, H 
    	$qr->displayFPDF ($pdf, $posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+55, $posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+17 , 35); 
		

		if(!isset($color))
		{
						$color=Yii::getPathOfAlias("webroot").'/pdf/rectanguloPieNoAsignado.jpg';
						$pdf->SetTextColor($colores['blanco']);
						array_push($arrayColores, $color);
						array_push($arrayColoresFuente, 'blanco');
		}
		//Imagen del pie
		//$pdf->Image($color,$posicionImagenes['x'.$contadorNuevaPagina]-1,$posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+63,99,18,'JPG');
		
		/*
			*/
		
		$pdf->SetFont('Arial','B');	
		$pdf->SetFontSize($size['s5']);				
		$pdf->SetXY($posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina], $posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+67);		
		$pdf->Cell(10,10,utf8_decode($row['deporte_actividad_observacion']));
		
		$pdf->SetFont('Arial','B');	
		$pdf->SetFontSize($size['s6']);				
		$pdf->SetXY($posicionImagenes['x'.$contadorNuevaPagina]+$incrementos['x'.$contadorNuevaPagina]+86, $posicionImagenes['y'.$contadorNuevaPagina]+$incrementos['y'.$contadorNuevaPagina]+67);		
		$pdf->Cell(10,10,utf8_decode($zonas),0,0,'R');			
		
		$contadorNuevaPagina++;
		
			if($contadorNuevaPagina==5 || count($rows)==$contadorTotal)
			{							
				$pdf->AddPage('P','A4');
				$pdf->SetAutoPageBreak('off',1);	
				$pdf->Image($rutaFondoBack,-2,-5,220,313,'PNG');									
							
				for($i =0;$i<$arrayDatosBack->count();$i++)
				{				
					$index=	$i+1;
					//Imagen del pie
					//$pdf->Image($arrayColores[$i],$posicionImagenesBack['x'.$index],$posicionImagenesBack['y'.$index]-24,99,18,'JPG');
					
						$rutaImagen=Yii::getPathOfAlias("webroot").'/'.$arrayDatosBack[$i]["inscripcion_nominal_foto"];
						
						$pdf->Image($rutaImagen,$posicionImagenesBack['x'.$index]+4,$posicionImagenesBack['y'.$index]-22,12,14,'JPG');

						$pdf->SetFont('Arial','B');	
						$pdf->SetFontSize(11);		
						//$pdf->SetTextColor($colores[$arrayColoresFuente[$i]]);
						$pdf->SetTextColor($colores['negro']);
						$pdf->SetXY($posicionImagenesBack['x'.$index]+18, $posicionImagenesBack['y'.$index]-23);
						if(checkLongitud($arrayDatosBack[$i]['persona_nombre_credencial'],'s4'))
							$pdf->CellFit(80,10,utf8_decode($arrayDatosBack[$i]['persona_nombre_credencial']),0,0,'L',false,'',true);
						else			
						$pdf->Cell(10,10,utf8_decode($arrayDatosBack[$i]["persona_nombre_credencial"]));

						$pdf->SetXY($posicionImagenesBack['x'.$index]+18, $posicionImagenesBack['y'.$index]-16);
						if(checkLongitud($arrayDatosBack[$i]['categoria_aplica'],'s5'))
							$pdf->CellFit(80,10,utf8_decode($arrayDatosBack[$i]['categoria_aplica']),0,0,'L',false,'',true);
						else		
						$pdf->Cell(10,10,utf8_decode($arrayDatosBack[$i]["categoria_aplica"]));			
						
						 		
				}
				$arrayDatosBack= new ArrayObject();
				$arrayColores=array();
				$arrayColoresFuente=array();
			}
	}
	
	$pdf->Output('credencial.pdf', 'D');
?>